Presto দিয়ে S3 Data Query করা

Database Tutorials - অ্যাপাচি প্রেস্টো (Apache Presto) Presto with AWS S3 |
178
178

Presto একটি অত্যন্ত শক্তিশালী ডিস্ট্রিবিউটেড SQL কোয়েরি ইঞ্জিন যা বিভিন্ন ডেটা সোর্সের সাথে কাজ করতে পারে। একটি গুরুত্বপূর্ণ ডেটা সোর্স হলো Amazon S3, যা একটি স্কেলেবল এবং সুরক্ষিত ক্লাউড স্টোরেজ সার্ভিস। Presto S3 এর সাথে কাজ করতে পারে এবং S3 থেকে ডেটা পড়ে SQL কোয়েরি চালাতে সহায়ক।

প্রথমে আপনাকে Presto-কে S3 ডেটা সোর্সের সাথে সংযুক্ত করতে হবে এবং তারপর S3-এ সংরক্ষিত ডেটার উপর SQL কোয়েরি চালাতে হবে।


১. Presto তে S3 Connector কনফিগারেশন

Presto এর সাথে S3 সংযোগ করার জন্য Hive Connector ব্যবহার করতে হয়। Presto Hive Connector-এ S3 এর জন্য কিছু কনফিগারেশন সেটিংস রয়েছে যা S3 এ সংরক্ষিত ডেটা অ্যাক্সেস করতে সহায়ক।

ধাপ ১: S3 Connector কনফিগারেশন ফাইল তৈরি করা

Presto-তে S3 এর সাথে সংযোগ স্থাপনের জন্য, hive.properties কনফিগারেশন ফাইল তৈরি করতে হবে যা Presto ক্লাস্টারের etc/catalog/ ফোল্ডারে থাকবে।

hive.properties উদাহরণ:

connector.name=hive-hadoop2
hive.s3.endpoint=s3.amazonaws.com
hive.s3.aws-access-key-id=<AWS_ACCESS_KEY_ID>
hive.s3.aws-secret-access-key=<AWS_SECRET_ACCESS_KEY>
hive.metastore.uri=thrift://<hive-metastore-uri>
  • connector.name=hive-hadoop2: এটি Hive Hadoop 2 Connector ব্যবহার করবে, যা S3 এর সাথে কাজ করার জন্য উপযুক্ত।
  • hive.s3.endpoint=s3.amazonaws.com: এটি S3-এর endpoint।
  • hive.s3.aws-access-key-id এবং hive.s3.aws-secret-access-key: S3 অ্যাক্সেস করার জন্য AWS অ্যাক্সেস কীগুলি।
  • hive.metastore.uri: Hive মেটাস্টোর URI, এটি আপনার Hive সিস্টেমের জন্য কনফিগার করা থাকতে হবে। সাধারণত এটি thrift://localhost:9083 হবে, তবে আপনি আপনার মেটাস্টোর কনফিগারেশন অনুযায়ী এটি সেট করতে হবে।

ধাপ ২: AWS Credentials Setup

Presto-তে S3 অ্যাক্সেস করার জন্য আপনার AWS অ্যাক্সেস কীগুলি সঠিকভাবে কনফিগার করা থাকতে হবে। আপনি ~/.aws/credentials ফাইলে AWS অ্যাক্সেস কীগুলি রাখতে পারেন।

AWS Credentials File (~/.aws/credentials) উদাহরণ:

[default]
aws_access_key_id = <AWS_ACCESS_KEY_ID>
aws_secret_access_key = <AWS_SECRET_ACCESS_KEY>

এটি Presto-কে AWS S3 অ্যাক্সেস করতে সহায়ক হবে।


২. Presto CLI থেকে S3 ডেটা Query করা

Presto সঠিকভাবে কনফিগার করা হলে, আপনি Presto CLI বা SQL কোয়েরি ইঞ্জিন ব্যবহার করে S3 থেকে ডেটা পড়তে পারবেন। Presto CLI দিয়ে S3 ডেটা Query করার জন্য প্রথমে আপনাকে Presto CLI-এ লগইন করতে হবে এবং সঠিক ক্যাটালগ এবং স্কিমা নির্বাচন করতে হবে।

Presto CLI দিয়ে S3 ডেটা Query Example:

java -jar presto-cli-350-executable.jar --server <presto-server-ip>:8080 --catalog hive --schema default

এখানে:

  • hive হল ক্যাটালগ নাম (যেহেতু আমরা Hive Connector ব্যবহার করছি)।
  • default হল স্কিমা নাম।

Query Example:

S3-এ একটি টেবিল (যেমন CSV বা Parquet ফাইল) থাকতে পারে, যা Query করা যাবে। উদাহরণস্বরূপ:

SELECT * FROM s3_table LIMIT 10;

এটি s3_table নামে একটি টেবিলের প্রথম ১০টি রেকর্ড প্রদর্শন করবে যা S3 এ সংরক্ষিত।

Querying Parquet Files in S3:

SELECT * FROM parquet.'s3://your-bucket-name/path/to/your-file.parquet' LIMIT 10;

এটি S3-এর নির্দিষ্ট পথ থেকে Parquet ফাইলটি পড়ে এবং প্রথম ১০টি রেকর্ড প্রদর্শন করবে।


৩. Query Optimization for S3 Data

S3 থেকে ডেটা পড়ার সময় কিছু অপ্টিমাইজেশন কৌশল অনুসরণ করা যেতে পারে:

  1. Partitioning: S3-এ ডেটা পার্টিশন করার মাধ্যমে কোয়েরি পারফরম্যান্স উন্নত করা যায়। প্রতিটি পার্টিশনের জন্য আলাদা আলাদা কোয়েরি চালানো সহজ এবং দ্রুত হয়।

    Example:

    SELECT * FROM s3_table WHERE year = 2022 AND month = 01;
    
  2. Predicate Pushdown: Presto S3 থেকে ডেটা পড়ার সময় কেবলমাত্র প্রয়োজনীয় ডেটাই ফেরত আনবে, অর্থাৎ predicate pushdown প্রযুক্তি ব্যবহার করবে। এই প্রযুক্তি ব্যবহার করে S3 থেকে প্রয়োজনীয় রেকর্ডগুলোই কেবল লোড করা হয়, যা কোয়েরির পারফরম্যান্স উন্নত করে।
  3. File Formats: S3-এ ডেটা সংরক্ষণের জন্য পারফরম্যান্স বাড়ানোর জন্য ফাইল ফরম্যাট নির্বাচন করা গুরুত্বপূর্ণ। Parquet বা ORC ফাইল ফরম্যাটগুলি CSV বা JSON এর তুলনায় অনেক দ্রুত এবং কার্যকর।

৪. Presto দিয়ে S3 Data Query এর সুবিধা

  1. Scalability: Presto সিস্টেমটি একাধিক Worker Node ব্যবহার করে ডেটা প্রসেস করতে পারে, যা S3-এ থাকা বিশাল ডেটাসেটকে দ্রুত প্রসেস করতে সহায়ক।
  2. Integration: S3 এর সাথে Presto-র ইন্টিগ্রেশন সহজ এবং স্কেলেবল, যা ব্যবহারকারীদের বৃহৎ পরিমাণে ডেটা প্রসেস করতে সাহায্য করে।
  3. Cost Optimization: S3 থেকে ডেটা পড়ার সময়, Presto কেবলমাত্র প্রয়োজনীয় ডেটা লোড করে, যার ফলে খরচ কম হয়।

সারাংশ

Presto দিয়ে S3 ডেটা Query করা একটি কার্যকরী এবং স্কেলেবল পদ্ধতি। Presto S3 Connector ব্যবহার করে আপনি সহজেই S3-এ সংরক্ষিত ডেটা সংযুক্ত করতে এবং SQL কোয়েরির মাধ্যমে বিশ্লেষণ করতে পারেন। S3 ডেটার উপর পারফরম্যান্স অপটিমাইজেশন কৌশলগুলি অনুসরণ করে দ্রুত এবং কার্যকরী ডেটা প্রসেসিং করা যায়।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion